notebook: Do not reorder tabs after a grab notify if there isn't an ongoing reorder...
authorCarlos Garcia Campos <cgarcia@igalia.com>
Tue, 2 Feb 2016 17:50:58 +0000 (18:50 +0100)
committerCarlos Garcia Campos <carlosgc@gnome.org>
Tue, 2 Feb 2016 18:02:53 +0000 (19:02 +0100)
This broke in f535251507a6a0af68aed6348ae80cbdac9b1f4a that removed
during_reorder in favor of using the current operation, but removed the
check from gtk_notebook_stop_reorder().

gtk/gtknotebook.c

index ca665da20a1082d25157b01b208e73d053456f3b..a4d97ed1ecef2cb39aa911ed882ed8b84e06730c 100644 (file)
@@ -3013,24 +3013,27 @@ gtk_notebook_stop_reorder (GtkNotebook *notebook)
 
   if (page->reorderable || page->detachable)
     {
-      gint old_page_num, page_num, i;
-      GList *element;
+      if (priv->operation == DRAG_OPERATION_REORDER)
+        {
+          gint old_page_num, page_num, i;
+          GList *element;
 
-      element = get_drop_position (notebook);
-      old_page_num = g_list_position (priv->children, priv->focus_tab);
-      page_num = reorder_tab (notebook, element, priv->focus_tab);
-      gtk_notebook_child_reordered (notebook, page);
+          element = get_drop_position (notebook);
+          old_page_num = g_list_position (priv->children, priv->focus_tab);
+          page_num = reorder_tab (notebook, element, priv->focus_tab);
+          gtk_notebook_child_reordered (notebook, page);
 
-      if (priv->has_scrolled || old_page_num != page_num)
-        {
-          for (element = priv->children, i = 0; element; element = element->next, i++)
+          if (priv->has_scrolled || old_page_num != page_num)
             {
-              if (MIN (old_page_num, page_num) <= i && i <= MAX (old_page_num, page_num))
-                gtk_widget_child_notify (((GtkNotebookPage *) element->data)->child, "position");
+              for (element = priv->children, i = 0; element; element = element->next, i++)
+                {
+                  if (MIN (old_page_num, page_num) <= i && i <= MAX (old_page_num, page_num))
+                    gtk_widget_child_notify (((GtkNotebookPage *) element->data)->child, "position");
+                }
+              g_signal_emit (notebook,
+                             notebook_signals[PAGE_REORDERED], 0,
+                             page->child, page_num);
             }
-          g_signal_emit (notebook,
-                         notebook_signals[PAGE_REORDERED], 0,
-                         page->child, page_num);
         }
 
       priv->has_scrolled = FALSE;